package com.lu.dynamicload;

/**
 * @author luke
 * @className HotSwapClassLoader
 * @description
 * 为了多次载入执行类而加入的加载器
 * @date 2021/09/24 14:24
 */
public class HotSwapClassLoader extends ClassLoader{

    /**
     * @description
     * 虚拟机调用，仍使用双亲委派规则的loadClass
     * @author luke
     * @date 2021/9/24 14:28
     * @return
     */
    public HotSwapClassLoader() {
        super(HotSwapClassLoader.class.getClassLoader());
    }

    /**
     * @description
     *  外部显式调用的时候才会使用到loadByte方法
     * @author luke
     * @date 2021/9/24 14:27
     * @param classByte
     * @return java.lang.Class
     */
    public Class loadByte(byte[] classByte) {

        return defineClass(null,classByte,0,classByte.length);
    }
}























